/*
Copyright 2009 Johan Maasing, Mikael Forsberg

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package com.google.code.pj2r;

import javax.servlet.http.HttpServletRequest;

public interface Marshaller {

    /**
     * Inject parameter values into the result object from the request parameters.
     * @param request The current request to get values from. May not be null.
     * @param result  The object that should recieve the values from the request. May not be null.
     * @throws MarshallingException If data coercion from the request to the result can not be performed.
     * @throws IllegalArgumentException If the request or the response objects are null.
     */
    public void marshal(HttpServletRequest request, Object result) throws MarshallingException;
}
